#include "Server.h"

int sock_server; //服务器
int sock_client; //客户端

//声明函数
int tcp_server_init( const char * ip ,in_port_t port)
{
    //创建套接字
    sock_server = socket( AF_INET ,SOCK_STREAM , 0);
    if (-1 == sock_server)
    {
        ERRLOG("创建套接字失败");
        exit(-1);
    }
    
    //填写信息结构体
        //使用IPV4网络信息结构体 不用 通用信息结构体
    struct sockaddr_in server_addr;
        //清空结构体
    memset(&server_addr, 0 , sizeof(server_addr));
        //确定协议选择 IPV4
    server_addr.sin_family = AF_INET;
        //端口号
    server_addr.sin_port = htons(port);
        //IP地址
    server_addr.sin_addr.s_addr = inet_addr(ip);

    //绑定
    if (-1 == bind(sock_server , (struct sockaddr *)&server_addr,sizeof(server_addr)))
    {
        ERRLOG("绑定出错");
        close(sock_server);
        exit(-1);
    }
    
    printf("开始监听\n");
    //监听
    if (-1 == listen(sock_server,1))
    {
        ERRLOG("监听失败");
        close(sock_server);
        exit(-1);
    }
    
    //等待连接
    sock_client = accept(sock_server , NULL , NULL);
    
    printf("连接成功\n");

    return sock_client;

}

void tcp_server_close(void)
{
    close(sock_server);
    close(sock_client);
    printf("关闭成功\n");
    return ;
}